package com.sgb.kjwl.repository;

import com.sgb.kjwl.model.entity.MachineDetailEntity;
import com.sgb.kjwl.model.entity.MachineRentInEntity;
import com.sgb.kjwl.model.entity.ParentAreaEntity;
import com.sgb.kjwl.model.entity.lease.CarListEntity3;
import com.sgb.kjwl.model.entity.lease.MachineListEntity3;
import com.sgb.kjwl.model.entity.request.LeaseMachineFilterJson;
import com.sgb.kjwl.model.entity.request.MachineFilterJson3;
import com.sgb.kjwl.model.entity.supplier3.DictEntity3;
import com.swgk.core.base.model.entity.ListResponse;
import com.swgk.core.base.model.entity.BaseEntity;

import java.util.List;

import io.reactivex.Observable;

public interface MachineRepertory extends BaseRepertory {

    Observable<BaseEntity<MachineDetailEntity>> getMachineDetail(String id);

    Observable<BaseEntity<MachineRentInEntity>> getMachineInDetail(String id);

    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterType();

    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterModel(String parentNo);

    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterTime();

    Observable<BaseEntity<List<ParentAreaEntity<List<ParentAreaEntity>>>>> getMachineArea(int areacode);

    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterSort();

    Observable<BaseEntity<ListResponse<List<MachineListEntity3>>>> getMachineList3(LeaseMachineFilterJson machineFilterJson3);

    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterSpec(String id);

    Observable<BaseEntity<List<DictEntity3>>> getCarFilterType();

    Observable<BaseEntity<List<DictEntity3>>> getCarFilterBrand();

    Observable<BaseEntity<List<DictEntity3>>> getCarFilterMoney();

    Observable<BaseEntity<ListResponse<List<CarListEntity3>>>> getCarList3(MachineFilterJson3 machineFilterJson3);
}
